
-- Funcion principal
makeFase1::String->(LProgram, LUserDefinedTypes)
makeFase1 phaskellProgram = (map lambdaUserDefinedTypedTransformer lambdaProgramLifted
                              , userDefinedTypes)                          							
  where
    errorsdf         = error (show (parsedHaskell))
    parsedHaskell    = (parser.lexer) (phaskellProgram)
    initialContext   = builtInitialHaskellContext parsedHaskell
    parsedHaskellWithoutGeneratrix =filter isSuperCombinator parsedHaskell
    lambdaProgram    = phaskell2Lambda  parsedHaskellWithoutGeneratrix initialContext
    lambdaProgramLifted = map lambdaLifting lambdaProgram
    lambdaUserDefinedTypedTransformer = lambdaUserDefinedTyped userDefinedTypes
    userDefinedTypes = buildUserDefinedTypesConstructors parsedHaskell
